package com.issoft.studentresitor.service;

import com.issoft.studentresitor.domain.pojo.Fee;
import com.baomidou.mybatisplus.extension.service.IService;
import com.issoft.studentresitor.domain.pojo.Result;
import com.issoft.studentresitor.domain.query.FeeQuery;
import com.issoft.studentresitor.domain.vo.FeeVo;
import com.issoft.studentresitor.utils.PageResult;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author GJH
 * @since 2025-09-14
 */
public interface IFeeService extends IService<Fee> {
    /**
     * 分页查询缴费记录
     * @param feeQuery
     * @return
     */
    PageResult<FeeVo> queryFeePage(FeeQuery feeQuery);
    /**
     * 根据学生ID查询缴费记录
     */
    List<FeeVo> queryFeeByStudentId(String studentId);
    /**
     * 更新支付状态
     */
    boolean updatePaymentStatus(Integer feeId, String paymentStatus, String paymentMethod);
    /**
     * 批量创建缴费项目
     */
    boolean batchCreateFeeItems(List<Fee> fees);

    /**
     * 导出缴费记录
     */
    Result export(HttpServletResponse response, List<Long> ids) throws IOException;

    /**
     * 获取缴费统计信息
     */
    FeeVo getFeeStatistics();
    /**
     * 批量缴费功能
     */
    boolean batchPay(Integer userId, Integer[] feeItemIds);
    /**
     * 根据用户ID查询缴费记录
     */
    List<Fee> queryByUserId(Integer userId);
}
